Index: plugin/src/main/java/hudson/plugins/findbugs/parser/Bug.java
===================================================================
--- plugin/src/main/java/hudson/plugins/findbugs/parser/Bug.java (revision 36072)
+++ plugin/src/main/java/hudson/plugins/findbugs/parser/Bug.java (revision )
@@ -5,14 +5,13 @@
import hudson.plugins.analysis.util.model.Priority;
import hudson.plugins.findbugs.FindBugsMessages;
import hudson.plugins.findbugs.Messages;
+import org.apache.commons.lang.StringUtils;
+import org.jvnet.localizer.LocaleProvider;
import java.text.DateFormat;
import java.util.Date;
import java.util.Random;
-import org.apache.commons.lang.StringUtils;
-import org.jvnet.localizer.LocaleProvider;
-
/**
* A serializable Java Bean class representing a warning.
*
@@ -39,6 +38,8 @@
private int reviewCount;
private boolean notAProblem;
private boolean inCloud;
+ private boolean shouldBeInCloud;
+ private String detailsUrl;
/**
* Creates a new instance of Bug
.
@@ -162,6 +163,18 @@
void setNotAProblem(final boolean notAProblem) {
this.notAProblem = notAProblem;
}
+
+ public void setShouldBeInCloud(boolean shouldBeInCloud) {
+ this.shouldBeInCloud = shouldBeInCloud;
+ }
+
+ public boolean isShouldBeInCloud() {
+ return shouldBeInCloud;
+ }
+
+ public void setDetailsUrlTemplate(String detailsUrl) {
+ this.detailsUrl = detailsUrl;
+ }
// CHECKSTYLE:ON
/**
@@ -188,7 +201,7 @@
}
private String getCloudInformation() {
- if (!inCloud) {
+ if (!inCloud && detailsUrl == null) {
return "";
}
StringBuilder cloudMessage = new StringBuilder();
@@ -208,36 +221,39 @@
cloudMessage.append(" - ");
}
int id = RANDOM.nextInt();
- String onclick = "o=document.getElementById('fb-comments-" + id + "'); "
- + "o.src='http://findbugs-cloud.appspot.com/issues/" + instanceHash + "?embed'; "
+ String onclick = "";
+ if (detailsUrl != null) {
+ onclick = "o=document.getElementById('fb-comments-" + id + "'); "
+ + "o.src='" + String.format(detailsUrl, instanceHash) + "'; "
- + "o.style.display='block';"
- + "document.getElementById('fb-arrow-" + id + "').src='/plugin/findbugs/icons/arrow-down.gif';"
- + "return false";
- cloudMessage.append("");
+ + "o.style.display='block';"
+ + "document.getElementById('fb-arrow-" + id + "').src='/plugin/findbugs/icons/arrow-down.gif';"
+ + "return false";
+ cloudMessage.append("");
+ }
if (reviewCount == 1) {
cloudMessage.append(Messages.FindBugs_Bug_cloudInfo_reviewer_singular());
}
else {
cloudMessage.append(Messages.FindBugs_Bug_cloudInfo_reviewer_plural(reviewCount));
}
- cloudMessage.append("");
if (cloudMessage.length() == 0) {
return StringUtils.EMPTY;
}
- // CHECKSTYLE:OFF
- return "
"
- + "
"
- + ""
- + " "
- + "
"
- + cloudMessage.toString()
- + "
"
- + ""
- + "
";
- // CHECKSTYLE:ON
+ if (detailsUrl != null) {
+ cloudMessage.append("");
- }
+ }
+ if (detailsUrl != null) {
+ return String.format(
+ "
" +
+ "
" +
+ "
" +
+ "%s
" +
+ "" +
+ "
", onclick, onclick, getImage("arrow-right.gif"), id, getImage("fb-cloud-icon-small.png"),
+ Messages.FindBugs_Bug_cloudInfo_title(), cloudMessage.toString(), id);
+ }
+ return cloudMessage.toString();
+ }
private String getImage(final String image) {
Hudson hudson = Hudson.getInstance();
Index: plugin/src/main/java/hudson/plugins/findbugs/parser/FindBugsParser.java
===================================================================
--- plugin/src/main/java/hudson/plugins/findbugs/parser/FindBugsParser.java (revision 36293)
+++ plugin/src/main/java/hudson/plugins/findbugs/parser/FindBugsParser.java (revision )
@@ -1,17 +1,31 @@
package hudson.plugins.findbugs.parser; // NOPMD
+import edu.umd.cs.findbugs.BugAnnotation;
+import edu.umd.cs.findbugs.BugInstance;
+import edu.umd.cs.findbugs.Project;
+import edu.umd.cs.findbugs.SortedBugCollection;
+import edu.umd.cs.findbugs.SourceLineAnnotation;
+import edu.umd.cs.findbugs.ba.SourceFile;
+import edu.umd.cs.findbugs.ba.SourceFinder;
+import edu.umd.cs.findbugs.cloud.Cloud;
import hudson.plugins.analysis.core.AnnotationParser;
import hudson.plugins.analysis.util.model.FileAnnotation;
import hudson.plugins.analysis.util.model.LineRange;
import hudson.plugins.analysis.util.model.Priority;
import hudson.plugins.findbugs.FindBugsMessages;
+import org.apache.commons.digester.Digester;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.xerces.parsers.SAXParser;
+import org.dom4j.DocumentException;
+import org.jvnet.localizer.LocaleProvider;
+import org.xml.sax.SAXException;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -21,24 +35,6 @@
import java.util.logging.Level;
import java.util.logging.Logger;
-import org.apache.commons.digester.Digester;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.xerces.parsers.SAXParser;
-import org.dom4j.DocumentException;
-import org.jvnet.localizer.LocaleProvider;
-import org.xml.sax.SAXException;
-
-import edu.umd.cs.findbugs.BugAnnotation;
-import edu.umd.cs.findbugs.BugInstance;
-import edu.umd.cs.findbugs.DetectorFactoryCollection;
-import edu.umd.cs.findbugs.Project;
-import edu.umd.cs.findbugs.SortedBugCollection;
-import edu.umd.cs.findbugs.SourceLineAnnotation;
-import edu.umd.cs.findbugs.ba.SourceFile;
-import edu.umd.cs.findbugs.ba.SourceFinder;
-import edu.umd.cs.findbugs.cloud.Cloud;
-
/**
* A parser for the native FindBugs XML files (ant task, batch file or
* maven-findbugs-plugin >= 1.2).
@@ -61,7 +57,7 @@
private static final int NORMAL_PRIORITY_LOWEST_RANK = 9;
static {
- DetectorFactoryCollection.rawInstance().setPluginList(new URL[0]);
+// DetectorFactoryCollection.instance().setPluginList(new URL[0]);
}
/** Collection of source folders. */
@@ -224,8 +220,9 @@
warning.getType(), sourceLine.getStartLine(), sourceLine.getEndLine());
bug.setInstanceHash(warning.getInstanceHash());
- if (!setCloudInformation(collection, warning, bug)) {
- bug.setNotAProblem(setCloudInformation(collection, warning, bug));
+ boolean ignore = setCloudInformation(collection, warning, bug);
+ if (!ignore) {
+ bug.setNotAProblem(ignore);
bug.setFileName(findSourceFile(project, sourceFinder, sourceLine));
bug.setPackageName(warning.getPrimaryClass().getPackageName());
bug.setModuleName(actualName);
@@ -264,10 +261,12 @@
*/
private boolean setCloudInformation(final SortedBugCollection collection, final BugInstance warning, final Bug bug) {
Cloud cloud = collection.getCloud();
+ bug.setShouldBeInCloud(cloud.isOnlineCloud());
+ bug.setDetailsUrlTemplate(cloud.getBugDetailsUrlTemplate());
long firstSeen = cloud.getFirstSeen(warning);
bug.setInCloud(cloud.isInCloud(warning));
bug.setFirstSeen(firstSeen);
- int ageInDays = (int) ((System.currentTimeMillis() - firstSeen) / DAY_IN_MSEC);
+ int ageInDays = (int) ((collection.getAnalysisTimestamp() - firstSeen) / DAY_IN_MSEC);
bug.setAgeInDays(ageInDays);
bug.setReviewCount(cloud.getNumberReviewers(warning));
Index: library/upload-pom.xml
===================================================================
--- library/upload-pom.xml (revision 34694)
+++ library/upload-pom.xml (revision )
@@ -5,7 +5,7 @@
org.jvnet.hudson.plugins.findbugs
findbugs-snapshot
jar
- 1.3.10-hudson3
+ 2.0.0-hudson2
Index: plugin/pom.xml
===================================================================
--- plugin/pom.xml (revision 36574)
+++ plugin/pom.xml (revision )
@@ -40,7 +40,7 @@
org.jvnet.hudson.plugins
analysis-core
- 1.14
+ 1.15-SNAPSHOT
org.jvnet.hudson.plugins
@@ -51,7 +51,7 @@
org.jvnet.hudson.plugins.findbugs
library
- 1.3.10-hudson3
+ 2.0.0-hudson2
xerces
Index: library/pom.xml
===================================================================
--- library/pom.xml (revision 35179)
+++ library/pom.xml (revision )
@@ -10,14 +10,14 @@
org.jvnet.hudson.plugins.findbugs
library
jar
- 1.3.10-hudson4-SNAPSHOT
+ 2.0.0-hudson2
FindBugs Plug-in shaded libraries
org.jvnet.hudson.plugins.findbugs
findbugs-snapshot
- 1.3.10-hudson3
+ 2.0.0-hudson2
jaxen
Index: plugin/src/main/java/hudson/plugins/findbugs/FindBugsResult.java
===================================================================
--- plugin/src/main/java/hudson/plugins/findbugs/FindBugsResult.java (revision 35036)
+++ plugin/src/main/java/hudson/plugins/findbugs/FindBugsResult.java (revision )
@@ -64,12 +64,12 @@
if (annotation instanceof Bug) {
Bug bug = (Bug) annotation;
if (bug.isInCloud()) {
- if (bug.getAgeInDays() <= LESS_ONE_WEEK) {
+ if (bug.isShouldBeInCloud() && bug.getAgeInDays() <= LESS_ONE_WEEK) {
newThisWeek++;
}
numberOfComments += bug.getReviewCount();
}
- else {
+ else if (bug.isShouldBeInCloud()) {
notInCloud++;
}
}
Index: library/upload.sh
===================================================================
--- library/upload.sh (revision 34694)
+++ library/upload.sh (revision )
@@ -1,2 +1,2 @@
-mvn deploy:deploy-file -Durl=java-net:/maven2-repository/trunk/repository/ -DrepositoryId=maven2-repository.dev.java.net -Dfile=findbugs-full-1.3.10-dev-20100910.jar -DpomFile=upload-pom.xml
+mvn deploy:deploy-file -Durl=java-net:/maven2-repository/trunk/repository/ -DrepositoryId=maven2-repository.dev.java.net -Dfile=findbugs-full-2.0.0-dev-20101211.jar -DpomFile=upload-pom.xml